import request from "@/utils/request";

/**
 * 添加到购物车(对已有物品进行数量改动)
 * @param {number} skuId  商品ID
 * @param {number} skuNum 商品数量
 * @returns
 */
function reqAddToCart(skuId, skuNum) {
  return request({
    method: "post",
    url: `/cart/addToCart/${skuId}/${skuNum}`, // path参数
  });
}

/**
 * 获取购物车商品列表
 * @returns 商品列表
 */
function reqGetCartList() {
  return request({
    method: "get",
    url: "/cart/cartList",
  });
}

/**
 * 切换商品选中状态
 * @param {number} skuId 商品ID
 * @param {number} isChecked 商品选中状态  0代表取消选中 1代表选中
 * @returns null
 */
function reqUpdateIsCheckCart(skuId, isChecked) {
  return request({
    method: "get",
    url: `/cart/checkCart/${skuId}/${isChecked}`,
  });
}

/**
 * 删除购物车商品
 * @param {number} skuId 商品id
 * @returns null
 */
function reqDelCart(skuId) {
  return request({
    method: "delete",
    url: `/cart/deleteCart/${skuId}`, //path参数
  });
}

/**
 * 批量删除购物车
 * @param {Array} skuIdList 代表修改的商品id列表 请求体参数
 * @returns
 */
function reqBatchDeleteCart(skuIdList) {
  return request({
    method: "post",
    url: "/cart/batchDeleteCart",
    data: skuIdList, // 请求体参数
  });
}


/**
 * 批量选中购物车
 * @param {Array} skuIdList  代表修改的商品id列表     请求体参数
 * @param {number} isChecked  要修改的状态   1代表选中  0代表未选中
 * @returns 
 */
function reqBatchCheckCart(skuIdList, isChecked) {
  return request({
    method: "post",
    url: `/cart/batchCheckCart/${isChecked}`, //path参数
    data: skuIdList, // 请求体参数
  });
}

export {
  reqAddToCart,
  reqGetCartList,
  reqDelCart,
  reqUpdateIsCheckCart,
  reqBatchDeleteCart,
  reqBatchCheckCart,
};
